The present disclosure relates to a programming template for developing an application program that is intended to be executed in a manner distributed over two or more programmable logic controllers. It also relates to a computer program for a programming template and to a machine readable storage medium which stores the programming template and/or the computer program.
A programmable logic controller (PLC) is a device which is used to control or regulate a machine or installation and is programmed on a digital basis. In the simplest case, a PLC has inputs, outputs, an operating system (Firmware) and an interface which can be used to load the user program. The user program stipulates how the outputs are intended to be connected on the basis of the inputs. The operating system (Firmware) ensures that the user program always has the current state of the inputs available. Using this information, the user program can connect the outputs such that the machine or the installation works in the desired manner.
The PLC is linked to the machine or installation by means of sensors and actuators. The sensors are connected to the inputs of the PLC and tell the PLC what is happening in the machine or installation. Examples of sensors are light barriers, incremental transmitters, limit switches or else temperature sensors, fill level sensors, etc. The actuators are connected to the outputs of the PLC and provide the opportunity to control the machine or installation. Examples of actuators are contactors for switching on electric motors, electric valves for hydraulics or compressed air, switches, etc.
Conventional application programs can be programmed using the language means of the PLC programming language IEC61131-3. In order to simplify and shorten the development thereof, programming templates are available, such as what is known as the GAT (Generic Application Template) from Bosch Rexroth. In this case, the typical commonalities of the application programs (such as error handling, axle handling, mode-of-operation management or state machines) are tackled universally. The programming template allows a programmer of the application program to concentrate on the special features of his program and means that he now only need fill the programming template with program code at the correspondingly provided locations. He is assisted in this by dialogue-based code generation, for example in order to create and customize new modules or modes of operation. Thus, a well structured and clear application program can be produced in a short time with pretested program code.
Programming templates are generally provided as open example code, in some cases even in combination with a library containing basic elements. Functional expansions on the programming template are made using dialogues, or by means of export/import and “copy & paste”.
Programming templates today are usually of modular design. By way of example, typical elements of the programming templates are state machines and machine modules which can be added, removed and/or configured using an assistance interface (e.g. what is known as the GAT Wizard).
Task sections from an overall process are in this case each mapped as functional elements in a software module. The modules are autarkic, encapsulated units without knowledge of one another. For the overall process, the modules need to interact in coordinated fashion, however, which is ensured by a superordinate unit. By way of example, coordination is effected using a state (e.g. AUTO_PRODUCE). This state is ascertained by a superordinate unit on the basis of a preselected machine mode of operation and inputs and is forwarded to the modules. The modules perform the activities that match the state.
On the basis of the prior art today, a programming template is designed for application programs which are executed on a single controller. In this case, all the modules are always present on the controller. However, large machines or installations require the application to be distributed over a plurality of controllers.
An example of such an installation is a printing machine which comprises a plurality of printing towers, with one controller being used per printing tower and each printing tower comprising a plurality of printing mechanisms (modules). When production mode is activated, all of the printing towers and the respective printing mechanisms should adopt the automatic mode in the “Produce” state, for example, and in so doing perform the associated tasks. For this case, an application program needs to be set up to ensure coordination of the modules across control systems.
It is therefore desirable to have a programming template available which allows the modules to be operated in a coordinated manner (across control systems). There are no prepared generic functionalities of a programming template in existence for this case today.